The invention relates to a programmable logic control apparatus for a process and/or production installation, or installation for short. The control apparatus may be connected to a peripheral area of the installation, i.e. to sensors and/or actuators of assembly lines and machines in the installation, for example, via a field bus. The invention also includes a method for operating the programmable logic control apparatus. Finally, the invention also includes a solar heat installation and a computer program product.
In contrast to programs for a personal computer (PC), programs for a programmable logic controller have a strictly predetermined cycle. This is explained below with reference to FIG. 1. FIG. 1 shows a flowchart that illustrates how a field bus 10 transmits a respective current input data record in individual field bus cycles Zf over time t from a peripheral area (not shown) of an installation to a programmable logic control apparatus 12, or “control apparatus” for short. The control apparatus 12 executes a control program SPS for a control algorithm of the installation. The control program SPS is executed cyclically, that is to say one pass after the other, FIG. 1 representing two successive program cycles Zp of the control program SPS in their progression over time t.
Each program cycle ZP begins with the input data from the connected peripheral area being read in via the field bus. To this end, the control apparatus 12 copies the respective current input data record 14 from the field bus 10 to an input memory for a current input process image PAE. These data are then processed, and, at the end, the computed output data are written to the output memories again, from where the field bus reads them and transmits them to the peripheral area again. The memory for the input and output data is called a process image (PA). The portion for the input data is also shortened to PAE, and that for the output data is similarly shortened to PAA. From the input process image PAE, the control program SPS thus computes an output data record for an output memory image PAA during the program cycle Zp on the basis of the control algorithm. At the cycle end Ze, the output process image PAA, i.e. the data record having the control data for the peripheral area, is transferred to the field bus again, which transmits the output data record to actuating units of the peripheral area, which then actuate actuators of individual installation components. The transition between a cycle end and the next cycle beginning is called the cycle control point (ZKP), which is distinguished particularly by the fact that there is full data consistency in the output memory PAA, since all computation operations have concluded.
The field bus cycle that is used to ask the peripheral area for its current input data and to transmit available output data, computed by the control apparatus, thereto is independent of the program cycle Zp of the control apparatus 12. The field bus cycle time Tf is the time that the system needs in order to copy all the current input values that are transferred to the field bus from the peripheral area, as a current input data record, to the memory of the control apparatus as a current input process image PAE and to write the current output process image PAE that is present there to the peripheral area again as an output data record.
A program Zp takes a particular program cycle time Tz. This is longer than the field bus cycle time Tf that the field bus 10 uses to update current input data records at the data input of the control apparatus 12. In general, the principle here is that Tf<Tz. Orders of magnitude for standard PLC programs and configurations in this case are Tf<50 ms and Tz<1000 ms, meaning that an undesirable long time can elapse before there is a reaction to a change.
In the central peripheral area, instead of a field bus, what is known as a backplane bus is used, which generally operates even faster than a field bus. The text below refers to both bus types, that is to say a backplane bus and a field bus, and to further buses that can be used for a PLC generally as a communication bus.
Various methods are used to attempt to alter an existent PLC program such that individual portions thereof can be executed in parallel, so that by using a multicore or even many-core processor (multicore processor system) a control program is executed much faster without the programmer needing to fully program this explicitly.
Considerable problems arise in this context, however, because the hitherto sequential handling of a control program allows certain constructs that, when executed in parallel, result in unforeseeable events. An example that may be cited in this case is the use of a local variable (flag) that is repeatedly used in the various program sections as a buffer store for various computation operations. This is not a problem in a sequential control program. When individual portions of this control program are executed in parallel, implicit communication arises between these individual portions, since one program portion of the control program executed in parallel describes the variable while another portion reads this particular variable and therefore obtains an incorrect value. This is also called a data race.